package com.example.demo.controller;

import com.example.demo.controller.data.ReturnData;
import com.example.demo.entity.Circle;
import com.example.demo.entity.CircleLike;
import com.example.demo.service.CircleService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

/**
 * 圈子相关的接口控制类
 */
@RestController
@RequestMapping("/circle")
public class CircleController {

    @Resource
    CircleService circleService;

    // 添加接口
    @PostMapping("/add")
    ReturnData add(@RequestBody Circle circle,HttpServletRequest request) {
        // 获取[token] 的时候是使用 [用户名+密码]登录
        String token = request.getHeader("token");
        return circleService.add(circle,token);
    }

    // 查询列表
    // @RequestParam(defaultValue = "1") 添加默认值【1】
    @GetMapping("/list")
    ReturnData getList(@RequestParam(defaultValue = "1") int page,@RequestParam(defaultValue = "10") int pageSize,HttpServletRequest request) {
        // 获取[token] 的时候是使用 [用户名+密码]登录
        String token = request.getHeader("token");
        return circleService.getList(page,pageSize,token);
    }

    // 查询自己列表
    @GetMapping("/MyList")
    ReturnData getMyList(@RequestParam(defaultValue = "1") int page,@RequestParam(defaultValue = "10") int pageSize,HttpServletRequest request) {
        // 获取[token] 的时候是使用 [用户名+密码]登录
        String token = request.getHeader("token");
        return circleService.getMyList(page,pageSize,token);
    }

    // 点赞圈子
    @PostMapping("/like")
    ReturnData like(@RequestBody CircleLike circleLike, HttpServletRequest request) {
        // 获取[token] 的时候是使用 [用户名+密码]登录
        String token = request.getHeader("token");
        return circleService.like(circleLike,token);
    }

    // 取消点赞【相同名称只取消一个】
    @GetMapping("/getLikeUser")
    ReturnData getLikeUser(int circleId) {
        return circleService.getLikeUser(circleId);
    }

    // 查询自己点赞过的圈子
    @GetMapping("/MyLikeList")
    ReturnData getMyLikeList(@RequestParam(defaultValue = "1") int page,@RequestParam(defaultValue = "10") int pageSize,HttpServletRequest request) {
        // 获取[token] 的时候是使用 [用户名+密码]登录
        String token = request.getHeader("token");
        return circleService.getMyLikeList(page,pageSize,token);
    }

    // 删除自己发布的圈子
    @PostMapping("/delete")
    public ReturnData delete(@RequestBody Circle circle, HttpServletRequest request) {
        String token = request.getHeader("token");
        return  circleService.delete(circle.getId(),token);
    }

}
